/*
 * UMediaFrameQueue.h
 *
 *  Created on: 2020年7月11日
 *      Author: terry
 */

#ifndef CORE_UMEDIAFRAMEQUEUE_H_
#define CORE_UMEDIAFRAMEQUEUE_H_

#include "UMediaFrame.h"

class UMediaFrameQueuePrivate;

class DLLEXPORT UMediaFrameQueue
{
public:
	UMediaFrameQueue();
	virtual ~UMediaFrameQueue();

	size_t size();

	bool empty();

	size_t push(UMediaFrame& frame);

	bool pop(UMediaFrame& frame);

	void clear();

	void setMaxSize(size_t maxSize);

	size_t getMaxSize();

	size_t dropUntil(size_t maxSize);

private:
	UMediaFrameQueuePrivate*	m_pimpl;


};

#endif /* CORE_UMEDIAFRAMEQUEUE_H_ */
